package com.wanger.swc.util.http.model;

import com.wanger.swc.exception.BusEx;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.List;
import java.util.Map;

@Getter
@AllArgsConstructor
public enum ReturnType {
    byteArray(byte[].class),       // 二进制数据
    returnString(String.class),    // 字符串
    returnLong(Long.class),        // long 类型
    returnDouble(Double.class),    // double 类型
    returnMap(Map.class),         // Map 类型（通常是 JSON 对象）
    returnList(List.class),       // List 类型（通常是 JSON 数组）
    returnBoolean(Boolean.class),  // boolean 类型
    returnInteger(Integer.class),  // integer 类型
    returnVoid(Void.class);       // 无返回值（例如 DELETE 请求）

    // 获取对应类型的 Class
    private final Class<?> typeClass;    // 使用 Class<?> 来处理不同类型

    //根据class类型返回枚举
    public static String getReturnType(Class<?> tClass) {
        // 遍历所有枚举项
        for (ReturnType returnType : ReturnType.values()) {
            if (returnType.getTypeClass().equals(tClass)) {
                return returnType.name(); // 返回枚举项的名称
            }
        }
        throw BusEx.create("未找到返回值类型枚举！");
    }

}
